#ifndef __THREADPOLL_H
#define __THREADPOLL_H 

#include "../main.h"
#include "ThreadPoolStruct.h"

typedef struct ThreadPool ThreadPool;

// 创建线程池并初始化
extern ThreadPool *threadPoolCreate(int min,int max,int queueSize);

// 销毁线程池
extern int threadPoolDestroy(ThreadPool* pool);

// 给线程池添加任务
extern void threadPoolAdd(ThreadPool* pool,void(*func)(void*),void* arg);

// 获取线程池中工作的线程的个数
extern int threadPoolBusyNum(ThreadPool* pool);

// 工作的线程(消费者线程)任务函数
void* worker(void* arg);
// 管理者线程任务函数
void* manager(void* arg);
// 单个线程退出
void threadExit(ThreadPool* pool);

#endif
